﻿namespace Common.Base
{
    /// <summary>
    /// Event handler for Viewhanged events.
    /// </summary>
    /// <param name="view">New view.</param>
    public delegate void ViewChangedEventHandler(BaseView view);

    /// <summary>
    /// Base class for all controllers;
    /// </summary>
    public abstract class SubsystemController
    {
        protected BaseController currentController;

        public event ViewChangedEventHandler ViewChanged;

        public virtual void ChangeView(BaseView newView)
        {
            if (this.ViewChanged != null)
            {
                this.ViewChanged(newView);
            }
        }

        public abstract void Initialize();
    }
}
